package com.acsior.hibernate.vo;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;

import com.acsior.dac.impl.hibernate.vo.GeneratorKey;
import com.acsior.ddfn.impl.hibernate.vo.NomElementVO;

/**
 * NomCountry entity. @author MyEclipse Persistence Tools <b><i>powered by
 * Belev</i></b>
 */
@Entity
@Table(name = "nom_countries", uniqueConstraints = @UniqueConstraint(columnNames = "system_name"))
@GeneratorKey(tableName = "nom_countries")
public class NomCountryVO extends NomElementVO {

	private static final long serialVersionUID = 5110309512390113888L;

	@Column(name = "advice_of_delivery")
	private boolean adviceOfDelivery;

	@Column(name = "at_address")
	private boolean atAddress;

	@Column(name = "bank_order")
	private boolean bankOrder;

	@Column(name = "category_air", nullable = false, length = 1)
	private String categoryAir;

	@Column(name = "category_land", nullable = false, length = 1)
	private String categoryLand;

	@Column(name = "eu", nullable = false)
	private boolean eu;

	@Column(name = "general_delivery")
	private boolean generalDelivery;

	@Column(name = "max_dts_air", nullable = false, precision = 24, scale = 0)
	private float maxDtsAir;

	@Column(name = "max_dts_land", nullable = false, precision = 24, scale = 0)
	private float maxDtsLand;

	@Column(name = "max_dts_letter", nullable = false, precision = 24, scale = 0)
	private float maxDtsLetter;

	@Column(name = "max_money", nullable = false, scale = 4)
	private double maxMoney;

	@Column(name = "max_wight_air", nullable = false, precision = 10)
	private double maxWightAir;

	@Column(name = "max_wight_land", nullable = false, precision = 10)
	private double maxWightLand;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "nom_currency_id", nullable = true)
	private NomCurrencyVO nomCurrency;

	@Column(name = "private_message")
	private boolean privateMessage;

	@Column(name = "zone_air", nullable = false)
	private short zoneAir;

	@Column(name = "zone_land", nullable = false)
	private short zoneLand;

	@Column(name = "zone_nearby", nullable = false)
	private short zoneNearby;

	/** default constructor */
	public NomCountryVO() {
		super();
	}

	/** @return the categoryAir */
	public String getCategoryAir() {
		return this.categoryAir;
	}

	/** @return the categoryLand */
	public String getCategoryLand() {
		return this.categoryLand;
	}

	/** @return the maxDtsAir */
	public float getMaxDtsAir() {
		return this.maxDtsAir;
	}

	/** @return the maxDtsLand */
	public float getMaxDtsLand() {
		return this.maxDtsLand;
	}

	/** @return the maxDtsLetter */
	public float getMaxDtsLetter() {
		return this.maxDtsLetter;
	}

	/** @return the maxMoney */
	public double getMaxMoney() {
		return this.maxMoney;
	}

	/** @return the maxWightAir */
	public double getMaxWightAir() {
		return this.maxWightAir;
	}

	/** @return the maxWightLand */
	public double getMaxWightLand() {
		return this.maxWightLand;
	}

	/** @return the nomCurrency */
	public NomCurrencyVO getNomCurrency() {
		return this.nomCurrency;
	}

	/** @return the zoneAir */
	public short getZoneAir() {
		return this.zoneAir;
	}

	/** @return the zoneLand */
	public short getZoneLand() {
		return this.zoneLand;
	}

	/** @return the zoneNearby */
	public short getZoneNearby() {
		return this.zoneNearby;
	}

	/** @return the adviceOfDelivery */
	public boolean isAdviceOfDelivery() {
		return this.adviceOfDelivery;
	}

	/** @return the atAddress */
	public boolean isAtAddress() {
		return this.atAddress;
	}

	/** @return the bankOrder */
	public boolean isBankOrder() {
		return this.bankOrder;
	}

	/** @return the eu */
	public boolean isEu() {
		return this.eu;
	}

	/** @return the generalDelivery */
	public boolean isGeneralDelivery() {
		return this.generalDelivery;
	}

	/** @return the privateMessage */
	public boolean isPrivateMessage() {
		return this.privateMessage;
	}

	/**
	 * @param adviceOfDelivery
	 *            the adviceOfDelivery to set
	 */
	public void setAdviceOfDelivery(boolean adviceOfDelivery) {
		this.adviceOfDelivery = adviceOfDelivery;
	}

	/**
	 * @param atAddress
	 *            the atAddress to set
	 */
	public void setAtAddress(boolean atAddress) {
		this.atAddress = atAddress;
	}

	/**
	 * @param bankOrder
	 *            the bankOrder to set
	 */
	public void setBankOrder(boolean bankOrder) {
		this.bankOrder = bankOrder;
	}

	/**
	 * @param categoryAir
	 *            the categoryAir to set
	 */
	public void setCategoryAir(String categoryAir) {
		this.categoryAir = categoryAir;
	}

	/**
	 * @param categoryLand
	 *            the categoryLand to set
	 */
	public void setCategoryLand(String categoryLand) {
		this.categoryLand = categoryLand;
	}

	/**
	 * @param eu
	 *            the eu to set
	 */
	public void setEu(boolean eu) {
		this.eu = eu;
	}

	/**
	 * @param generalDelivery
	 *            the generalDelivery to set
	 */
	public void setGeneralDelivery(boolean generalDelivery) {
		this.generalDelivery = generalDelivery;
	}

	/**
	 * @param maxDtsAir
	 *            the maxDtsAir to set
	 */
	public void setMaxDtsAir(float maxDtsAir) {
		this.maxDtsAir = maxDtsAir;
	}

	/**
	 * @param maxDtsLand
	 *            the maxDtsLand to set
	 */
	public void setMaxDtsLand(float maxDtsLand) {
		this.maxDtsLand = maxDtsLand;
	}

	/**
	 * @param maxDtsLetter
	 *            the maxDtsLetter to set
	 */
	public void setMaxDtsLetter(float maxDtsLetter) {
		this.maxDtsLetter = maxDtsLetter;
	}

	/**
	 * @param maxMoney
	 *            the maxMoney to set
	 */
	public void setMaxMoney(double maxMoney) {
		this.maxMoney = maxMoney;
	}

	/**
	 * @param maxWightAir
	 *            the maxWightAir to set
	 */
	public void setMaxWightAir(double maxWightAir) {
		this.maxWightAir = maxWightAir;
	}

	/**
	 * @param maxWightLand
	 *            the maxWightLand to set
	 */
	public void setMaxWightLand(double maxWightLand) {
		this.maxWightLand = maxWightLand;
	}

	/**
	 * @param nomCurrency
	 *            the nomCurrency to set
	 */
	public void setNomCurrency(NomCurrencyVO nomCurrency) {
		this.nomCurrency = nomCurrency;
	}

	/**
	 * @param privateMessage
	 *            the privateMessage to set
	 */
	public void setPrivateMessage(boolean privateMessage) {
		this.privateMessage = privateMessage;
	}

	/**
	 * @param zoneAir
	 *            the zoneAir to set
	 */
	public void setZoneAir(short zoneAir) {
		this.zoneAir = zoneAir;
	}

	/**
	 * @param zoneLand
	 *            the zoneLand to set
	 */
	public void setZoneLand(short zoneLand) {
		this.zoneLand = zoneLand;
	}

	/**
	 * @param zoneNearby
	 *            the zoneNearby to set
	 */
	public void setZoneNearby(short zoneNearby) {
		this.zoneNearby = zoneNearby;
	}
}